package com.box.entity;

import java.util.ArrayList;
import java.util.List;

public class DbArticletypeExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public DbArticletypeExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andArtidIsNull() {
            addCriterion("artid is null");
            return (Criteria) this;
        }

        public Criteria andArtidIsNotNull() {
            addCriterion("artid is not null");
            return (Criteria) this;
        }

        public Criteria andArtidEqualTo(Integer value) {
            addCriterion("artid =", value, "artid");
            return (Criteria) this;
        }

        public Criteria andArtidNotEqualTo(Integer value) {
            addCriterion("artid <>", value, "artid");
            return (Criteria) this;
        }

        public Criteria andArtidGreaterThan(Integer value) {
            addCriterion("artid >", value, "artid");
            return (Criteria) this;
        }

        public Criteria andArtidGreaterThanOrEqualTo(Integer value) {
            addCriterion("artid >=", value, "artid");
            return (Criteria) this;
        }

        public Criteria andArtidLessThan(Integer value) {
            addCriterion("artid <", value, "artid");
            return (Criteria) this;
        }

        public Criteria andArtidLessThanOrEqualTo(Integer value) {
            addCriterion("artid <=", value, "artid");
            return (Criteria) this;
        }

        public Criteria andArtidIn(List<Integer> values) {
            addCriterion("artid in", values, "artid");
            return (Criteria) this;
        }

        public Criteria andArtidNotIn(List<Integer> values) {
            addCriterion("artid not in", values, "artid");
            return (Criteria) this;
        }

        public Criteria andArtidBetween(Integer value1, Integer value2) {
            addCriterion("artid between", value1, value2, "artid");
            return (Criteria) this;
        }

        public Criteria andArtidNotBetween(Integer value1, Integer value2) {
            addCriterion("artid not between", value1, value2, "artid");
            return (Criteria) this;
        }

        public Criteria andArtnameIsNull() {
            addCriterion("artname is null");
            return (Criteria) this;
        }

        public Criteria andArtnameIsNotNull() {
            addCriterion("artname is not null");
            return (Criteria) this;
        }

        public Criteria andArtnameEqualTo(String value) {
            addCriterion("artname =", value, "artname");
            return (Criteria) this;
        }

        public Criteria andArtnameNotEqualTo(String value) {
            addCriterion("artname <>", value, "artname");
            return (Criteria) this;
        }

        public Criteria andArtnameGreaterThan(String value) {
            addCriterion("artname >", value, "artname");
            return (Criteria) this;
        }

        public Criteria andArtnameGreaterThanOrEqualTo(String value) {
            addCriterion("artname >=", value, "artname");
            return (Criteria) this;
        }

        public Criteria andArtnameLessThan(String value) {
            addCriterion("artname <", value, "artname");
            return (Criteria) this;
        }

        public Criteria andArtnameLessThanOrEqualTo(String value) {
            addCriterion("artname <=", value, "artname");
            return (Criteria) this;
        }

        public Criteria andArtnameLike(String value) {
            addCriterion("artname like", value, "artname");
            return (Criteria) this;
        }

        public Criteria andArtnameNotLike(String value) {
            addCriterion("artname not like", value, "artname");
            return (Criteria) this;
        }

        public Criteria andArtnameIn(List<String> values) {
            addCriterion("artname in", values, "artname");
            return (Criteria) this;
        }

        public Criteria andArtnameNotIn(List<String> values) {
            addCriterion("artname not in", values, "artname");
            return (Criteria) this;
        }

        public Criteria andArtnameBetween(String value1, String value2) {
            addCriterion("artname between", value1, value2, "artname");
            return (Criteria) this;
        }

        public Criteria andArtnameNotBetween(String value1, String value2) {
            addCriterion("artname not between", value1, value2, "artname");
            return (Criteria) this;
        }

        public Criteria andArtdesIsNull() {
            addCriterion("artdes is null");
            return (Criteria) this;
        }

        public Criteria andArtdesIsNotNull() {
            addCriterion("artdes is not null");
            return (Criteria) this;
        }

        public Criteria andArtdesEqualTo(String value) {
            addCriterion("artdes =", value, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtdesNotEqualTo(String value) {
            addCriterion("artdes <>", value, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtdesGreaterThan(String value) {
            addCriterion("artdes >", value, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtdesGreaterThanOrEqualTo(String value) {
            addCriterion("artdes >=", value, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtdesLessThan(String value) {
            addCriterion("artdes <", value, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtdesLessThanOrEqualTo(String value) {
            addCriterion("artdes <=", value, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtdesLike(String value) {
            addCriterion("artdes like", value, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtdesNotLike(String value) {
            addCriterion("artdes not like", value, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtdesIn(List<String> values) {
            addCriterion("artdes in", values, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtdesNotIn(List<String> values) {
            addCriterion("artdes not in", values, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtdesBetween(String value1, String value2) {
            addCriterion("artdes between", value1, value2, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtdesNotBetween(String value1, String value2) {
            addCriterion("artdes not between", value1, value2, "artdes");
            return (Criteria) this;
        }

        public Criteria andArtclickhitIsNull() {
            addCriterion("artclickHit is null");
            return (Criteria) this;
        }

        public Criteria andArtclickhitIsNotNull() {
            addCriterion("artclickHit is not null");
            return (Criteria) this;
        }

        public Criteria andArtclickhitEqualTo(Integer value) {
            addCriterion("artclickHit =", value, "artclickhit");
            return (Criteria) this;
        }

        public Criteria andArtclickhitNotEqualTo(Integer value) {
            addCriterion("artclickHit <>", value, "artclickhit");
            return (Criteria) this;
        }

        public Criteria andArtclickhitGreaterThan(Integer value) {
            addCriterion("artclickHit >", value, "artclickhit");
            return (Criteria) this;
        }

        public Criteria andArtclickhitGreaterThanOrEqualTo(Integer value) {
            addCriterion("artclickHit >=", value, "artclickhit");
            return (Criteria) this;
        }

        public Criteria andArtclickhitLessThan(Integer value) {
            addCriterion("artclickHit <", value, "artclickhit");
            return (Criteria) this;
        }

        public Criteria andArtclickhitLessThanOrEqualTo(Integer value) {
            addCriterion("artclickHit <=", value, "artclickhit");
            return (Criteria) this;
        }

        public Criteria andArtclickhitIn(List<Integer> values) {
            addCriterion("artclickHit in", values, "artclickhit");
            return (Criteria) this;
        }

        public Criteria andArtclickhitNotIn(List<Integer> values) {
            addCriterion("artclickHit not in", values, "artclickhit");
            return (Criteria) this;
        }

        public Criteria andArtclickhitBetween(Integer value1, Integer value2) {
            addCriterion("artclickHit between", value1, value2, "artclickhit");
            return (Criteria) this;
        }

        public Criteria andArtclickhitNotBetween(Integer value1, Integer value2) {
            addCriterion("artclickHit not between", value1, value2, "artclickhit");
            return (Criteria) this;
        }

        public Criteria andArturlIsNull() {
            addCriterion("arturl is null");
            return (Criteria) this;
        }

        public Criteria andArturlIsNotNull() {
            addCriterion("arturl is not null");
            return (Criteria) this;
        }

        public Criteria andArturlEqualTo(String value) {
            addCriterion("arturl =", value, "arturl");
            return (Criteria) this;
        }

        public Criteria andArturlNotEqualTo(String value) {
            addCriterion("arturl <>", value, "arturl");
            return (Criteria) this;
        }

        public Criteria andArturlGreaterThan(String value) {
            addCriterion("arturl >", value, "arturl");
            return (Criteria) this;
        }

        public Criteria andArturlGreaterThanOrEqualTo(String value) {
            addCriterion("arturl >=", value, "arturl");
            return (Criteria) this;
        }

        public Criteria andArturlLessThan(String value) {
            addCriterion("arturl <", value, "arturl");
            return (Criteria) this;
        }

        public Criteria andArturlLessThanOrEqualTo(String value) {
            addCriterion("arturl <=", value, "arturl");
            return (Criteria) this;
        }

        public Criteria andArturlLike(String value) {
            addCriterion("arturl like", value, "arturl");
            return (Criteria) this;
        }

        public Criteria andArturlNotLike(String value) {
            addCriterion("arturl not like", value, "arturl");
            return (Criteria) this;
        }

        public Criteria andArturlIn(List<String> values) {
            addCriterion("arturl in", values, "arturl");
            return (Criteria) this;
        }

        public Criteria andArturlNotIn(List<String> values) {
            addCriterion("arturl not in", values, "arturl");
            return (Criteria) this;
        }

        public Criteria andArturlBetween(String value1, String value2) {
            addCriterion("arturl between", value1, value2, "arturl");
            return (Criteria) this;
        }

        public Criteria andArturlNotBetween(String value1, String value2) {
            addCriterion("arturl not between", value1, value2, "arturl");
            return (Criteria) this;
        }

        public Criteria andArtimageIsNull() {
            addCriterion("artimage is null");
            return (Criteria) this;
        }

        public Criteria andArtimageIsNotNull() {
            addCriterion("artimage is not null");
            return (Criteria) this;
        }

        public Criteria andArtimageEqualTo(String value) {
            addCriterion("artimage =", value, "artimage");
            return (Criteria) this;
        }

        public Criteria andArtimageNotEqualTo(String value) {
            addCriterion("artimage <>", value, "artimage");
            return (Criteria) this;
        }

        public Criteria andArtimageGreaterThan(String value) {
            addCriterion("artimage >", value, "artimage");
            return (Criteria) this;
        }

        public Criteria andArtimageGreaterThanOrEqualTo(String value) {
            addCriterion("artimage >=", value, "artimage");
            return (Criteria) this;
        }

        public Criteria andArtimageLessThan(String value) {
            addCriterion("artimage <", value, "artimage");
            return (Criteria) this;
        }

        public Criteria andArtimageLessThanOrEqualTo(String value) {
            addCriterion("artimage <=", value, "artimage");
            return (Criteria) this;
        }

        public Criteria andArtimageLike(String value) {
            addCriterion("artimage like", value, "artimage");
            return (Criteria) this;
        }

        public Criteria andArtimageNotLike(String value) {
            addCriterion("artimage not like", value, "artimage");
            return (Criteria) this;
        }

        public Criteria andArtimageIn(List<String> values) {
            addCriterion("artimage in", values, "artimage");
            return (Criteria) this;
        }

        public Criteria andArtimageNotIn(List<String> values) {
            addCriterion("artimage not in", values, "artimage");
            return (Criteria) this;
        }

        public Criteria andArtimageBetween(String value1, String value2) {
            addCriterion("artimage between", value1, value2, "artimage");
            return (Criteria) this;
        }

        public Criteria andArtimageNotBetween(String value1, String value2) {
            addCriterion("artimage not between", value1, value2, "artimage");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}